# 给实例绑定属性的方法是通过实例变量，或者通过self变量：
# 实例属性====相当于java的局部变量
class People(object):

    def __init__(self, name) -> None:
        self.name = name


p = People('liangkun')
print(p.name)


# 如果Student类本身需要绑定一个属性呢？可以直接在class中定义属性，这种属性是类属性，归Student类所有：
class People2(object):
    name = 'liangpeng'


pp = People2()

print(pp.name)  # 打印name属性，因为实例并没有name属性，所以会继续查找class的name属性,如果有会优先打印实例的

print('****************注意实例属性和类属性赋值**************************')
pp.name = 'hanmeimei'
print(pp.name)
print(People2.name)  # 类属性一直存在
# 在编写程序的时候，千万不要对实例属性和类属性使用相同的名字，
# 因为相同名称的实例属性将屏蔽掉类属性，但是当你删除实例属性后，再使用相同的名称，访问到的将是类属性。
del pp.name  # 删除实例属性后，再使用相同的名称，访问到的将是类属性。
print(pp.name)

# 总结 ，1、有实例对象给了属性值，先查实例属性，如果没有，查类属性值
